home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2007 June
/
PCWorld_2007-06_cd.bin
/
v cisle
/
tclock
/
tclocklight-040702-3.exe
/
source
/
property
/
alarmday.c
next >
Wrap
C/C++ Source or Header
|
2004-01-14
|
3KB
|
141 lines
/*-------------------------------------------------------------
alarmday.c : "Day of Week" of alarm
(C) Kazuto Sato 1997-2003
For the license, please read readme.txt.
Written by Kazubon, Nanashi-san
---------------------------------------------------------------*/
#include "tcprop.h"
/* Globals */
int SetAlarmDay(HWND hDlg, PALARMSTRUCT pAS);
/* Statics */
static BOOL CALLBACK AlarmDayProc(HWND, UINT, WPARAM, LPARAM);
static void OnInit(HWND hDlg);
static void OnOK(HWND hDlg);
static void OnEveryDay(HWND hDlg);
static PALARMSTRUCT m_pAS;
/*------------------------------------------------
show dialog box
--------------------------------------------------*/
int SetAlarmDay(HWND hDlg, PALARMSTRUCT pAS)
{
m_pAS = pAS;
return DialogBox(g_hInst, MAKEINTRESOURCE(IDD_ALARMDAY),
hDlg, AlarmDayProc);
}
/*------------------------------------------------
dialog procedure
--------------------------------------------------*/
BOOL CALLBACK AlarmDayProc(HWND hDlg, UINT message,
WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_INITDIALOG:
OnInit(hDlg);
return TRUE;
case WM_COMMAND:
{
WORD id; //, code;
id = LOWORD(wParam); // code = HIWORD(wParam);
switch(id)
{
case IDC_ALARMDAY0:
OnEveryDay(hDlg); break;
case IDOK: OnOK(hDlg);
case IDCANCEL: EndDialog(hDlg, id); break;
}
return TRUE;
}
}
return FALSE;
}
/*------------------------------------------------
initialize
--------------------------------------------------*/
void OnInit(HWND hDlg)
{
int i;
BOOL bAll;
// common/tclang.c
SetDialogLanguage(hDlg, "AlarmDay", g_hfontDialog);
bAll = TRUE;
for(i = 0; i < 7; i++)
{
if(m_pAS->wdays[i])
{
CheckDlgButton(hDlg, IDC_ALARMDAY1+i, TRUE);
bAll = FALSE;
}
}
if(bAll)
{
CheckDlgButton(hDlg, IDC_ALARMDAY0, TRUE);
OnEveryDay(hDlg);
}
}
/*------------------------------------------------
retreive setting
--------------------------------------------------*/
void OnOK(HWND hDlg)
{
char s[80];
BOOL bAll;
int i;
s[0] = 0;
bAll = TRUE;
for(i = 0; i < 7; i++)
{
if(IsDlgButtonChecked(hDlg, IDC_ALARMDAY1 + i))
wsprintf(s + strlen(s), "%d,", i);
else bAll = FALSE;
}
if(bAll)
m_pAS->strWDays[0] = 0;
else
{
s[strlen(s) - 1] = 0;
strcpy(m_pAS->strWDays, s);
}
}
/*------------------------------------------------
Every day
--------------------------------------------------*/
void OnEveryDay(HWND hDlg)
{
int i;
if(IsDlgButtonChecked(hDlg, IDC_ALARMDAY0))
{
for(i = 0; i < 7; i++)
{
CheckDlgButton(hDlg, IDC_ALARMDAY1 + i, TRUE);
EnableDlgItem(hDlg, IDC_ALARMDAY1+i, FALSE);
}
}
else
{
for(i = 0; i < 7; i++)
{
CheckDlgButton(hDlg, IDC_ALARMDAY1 + i, FALSE);
EnableDlgItem(hDlg, IDC_ALARMDAY1+i, TRUE);
}
}
}